#!/bin/bash

# 备份当前分支
git branch backup_before_author_fix

# 修改作者信息
git filter-branch --env-filter '
# 获取提交信息
COMMIT_MSG=$(git log -1 --pretty=format:"%s" $GIT_COMMIT)

# 如果是包含LaoZu的提交，或者是特定的提交信息，修改为MyDearest35
if [[ "$COMMIT_MSG" == *"LaoZu"* ]] || [[ "$COMMIT_MSG" == *"关于连接c草所必须的改动，和病虫害前后端对接但是没完全对接这件事"* ]]; then
    export GIT_AUTHOR_NAME="MyDearest35"
    export GIT_AUTHOR_EMAIL="1879294494@qq.com"
    export GIT_COMMITTER_NAME="MyDearest35"
    export GIT_COMMITTER_EMAIL="1879294494@qq.com"
fi
' --tag-name-filter cat -- --branches --tags

# 推送到远程仓库
echo "正在推送到远程仓库..."
git push --force --all
git push --force --tags

echo "作者信息修改完成！"
echo "原始分支已备份为 backup_before_author_fix"
echo "如果需要恢复，可以使用: git reset --hard backup_before_author_fix"
echo "注意：远程仓库的历史已经被修改，其他协作者需要使用 git pull --rebase 来同步更改" 